En MapboxGL JS, ¿es posible ver un evento "flyTo" activado por la API de geolocalización, y no el usuario moviéndose por la pantalla manualmente arrastrando el mapa?
Estoy tratando de activar una acción en mi aplicación solo cuando el usuario ingresa con éxito una búsqueda en el controlador de Geolocalización. El mapa tiene un evento de movestart de movimiento que funciona para esto, pero también captura el movimiento de la pantalla del usuario a través del cursor o su dedo.
import Geocoder from "@mapbox/mapbox-gl-geocoder"; const geocoder = new Geocoder({ countries: "us", accessToken: mapboxGl.accessToken, mapboxgl: mapboxGl, marker: false, render: function (item) { return `<span class='geocoder-dropdown-text'>${item.text}</span>`; }, }); map.on("movestart", (e) => { // The problem is this event is too broad... });¿Es posible escuchar solo el evento "volador" cuando se activa la API de Geolocalización, o proporcionar específicamente una devolución de llamada al Geocodificador que se activará cuando comience la animación?
Puede crear un flying variable y establecerlo en verdadero cuando comience el vuelo. Luego, puede escuchar los eventos movestart o moveenv y verificar si un usuario lo arrastra o si se activa un evento de vuelo.
let flying = false; map.on("flystart", function () flying = true; }); map.on("flyend", function () { flying = false; }); map.on("moveend", function () { if (flying) { map.fire("flyend"); } }); function fly() { map.flyTo({ center: [....], }); map.fire("flystart"); }Violín: https://jsfiddle.net/wdtc91qo/